December 23, 2020
ํด๋ผ์ด์ธํธ๋ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ฌ์ฉ์์ ๋๋ฐ์ด์ค, ๋๋ ์น์ ์ ๊ทผํ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋ปํ๋ค.
๋ํ์ ์ธ ์๋ก [ A ] ๊ฐ ์๋๋ฐ, [ A ] ๋ HTML, CSS, JavaScript ๋ฑ์ผ๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ด๋ถ ์์ง์ผ๋ก ํด๋ ํ์ฌ ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ํํ์ ์ปจํ ์ธ ๋ก ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ์์์ ์์ฒญํ๋ฉด ํด๋น ์์ฒญ์ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ๋ ์ญํ ์ ํ๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ๋ช ์ํด ๋ ์ธํฐํ์ด์ค [ B ] ์ ๋ฐ๋ผ ์์ฒญ์ ์ ์กํ๋ค.
์ด๋ ๊ฒ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ฒ์ [ C ] ๋ผ๋ ํต์ ๊ท์ฝ ๋๋ถ์ด๋ค.
์ ๋ต : ๋ธ๋ผ์ฐ์ , api, http
api ๋ ํด๋ผ์ด์ธํธ์์ ์์ฒญํ๋ฉด ์ ์ ํ๊ฒ ์๋ฒ์ ์์์ ๊ฐ์ ธ๋ค ์ธ ์ ์๋ ๋ฉ๋ดํ ๊ฐ์ ๊ฑฐ๋ค. ์ํธ์์ฉ์ ํ๋ ๋๊ตฌ์ด๋ค.
์ํธ์์ฉ์ ํ๋ ์ฃผ์ฒด๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ด๋ค.
A. ์๋ฒ: ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ํ๋ ์ ๋ณด๋ฅผ ์์ฒญํ๋ค.๐ซ โโ->>> ํด๋ผ์ด์ธํธ๊ฐ ๋ง๋ค.
B. ํด๋ผ์ด์ธํธ: ์ ์ ์์ ์ ๋ฐ์ ์ธ ์ํธ์์ฉ์ ๋ด๋นํ๋ค.
C. ์๋ฒ: ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ์ ์ ํ ์๋ต์ ๋๋๋ ค ์ค๋ค.
D. ํด๋ผ์ด์ธํธ: ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์๋ต์ ๋ฐ๋ผ ๋ค๋ฅธ ํ๋ฉด์ ํ์ํ๋ค.
์ ๋ต A
A. AJAX ๋์ ์ ์๋ XMLHttpRequest๋ฅผ ์ด์ฉํ์ฌ ์ ์ ์ผ๋ก ํ์ด์ง ๋๋๋ง์ ํ๋ค.๐ซ - ์ ์ ์ด ์๋๋ผ ๋์ ์ผ๋ก ๊ฐ ๋ง๋ค.
B. AJAX๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๋ ํ์ํ ๋ฐ์ดํฐ๋ง ์๋ฒ๋ฅผ ํตํด ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ๊ณ , ํ์ด์ง์ ์ผ๋ถ๋ง ๋์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ ์ ์๋ค.
C. ๋น๋๊ธฐ์ ์ธ ์น์ฑ ์ ์์ ์ํ ์น ๊ฐ๋ฐ ๊ธฐ๋ฒ์ด๋ค.
D. Fetch API๋ฅผ ํตํด AJAX ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค.
์ ๋ต A
AJAX๋ ์ฌ์ค Fetch(ํน์ XMLHttpRequest) + DOM + ๋น๋๊ธฐ ์ด๋ฐ๊ฑธ ๊ทธ๋ฅ ๋ค ์งฌ๋ฝํ ์ฉ์ด๋ผ๊ณ ํ๋ค. ๋ฐ๋ก๋ฐ๋ก ๋ถ๋ฆฌํด์ ์๊ฐํ๋๊ฒ ์ข๋ค๊ณ ํจ.
AJAX ๋ JS ๋ฅผ ์ฌ์ฉํ ๋น๋๊ธฐ ํต์ , ํด๋ผ์ ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ด๋ค.
AJAX๊ฐ ์์๋ค๋ฉด ๊ฒ์์ด ์๋์์ฑ ์ถ์ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ์ ๊ฑฐ๋ผ๊ณ ํ์.
AJAX ๋ผ๋ ์ฉ์ด๋ณด๋ค SPA ๋ผ๋ ์ฉ์ด๋ฅผ ๋ ์ ์ฌ์ฉํ๋ค.
์์ด๋น์๋น ์ฌ์ดํธ ๋ ๊ตฌ๊ธ ๊ฒ์์ฐฝ์ ๋ญ๊ฐ ์ ๋ ฅํ ๋ ๊ทธ ๋ถ๋ถ๋ง ๋ ๋๋ง์ด ๋์ด ๋ํ๋๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
https://sungmooncho.com/2012/12/04/gmail-and-ajax/
A. ํด๋ผ์ด์ธํธ ์ธก์์, ์๋ฒ์ ์์์ ์์ฒญํ๊ณ ๋ฐ์ ์ค๊ธฐ ์ํด ์ฌ์ฉํ๋ API๋ค.O
B. ๋ฉ์๋ ์ฒด์ด๋ ๋ฐฉ์์ ํตํด ์ฌ์ฉํ ์ ์์ด ๊ฐ๋ ์ฑ์ด ์ข๋ค. - fetch, jquery ajax ์๋ง ํด๋น๋จ
C. ์น API๋ก์ ๋ณ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ์์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. - jquery ajax ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๋ฉ์๋ ์ฒด์ด๋์ ์์ - ๊ณ ์ฐจ ํจ์
์ ๋ต : res.json(), then, catch
์๋ฒ๋ JSON ์ผ๋ก ๋ณํ๋ ๊ฐ์ฒด๋ง ํด์ํ ์ ์๋๊ฑด๊ฐ์? JSON ์ธ์๋ XMLhttp ๋ฑ๋ฑ ์ด ์์ง๋ง ๋์ฒด๋ก ์ ์ด์จ์ด ๋ง๋ค.
์ผ๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฒ๊ฐ ํด์ํ๊ฒ ํ๊ธฐ ์ํด์๋ JSON.stringyfy() ๊ฐ ํ์ํ๋ค!
HTTP ์ฐธ์กฐ ๋งํฌ.
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
Fetch ๋ด์ url ์ฃผ์๋ api ๋ฅผ ์ ๊ณต? ํ๋ ์ฃผ์์ ํํด์๋ง ํด๋น๋๋ค!
http ๋ ํธ์ง์ง ์์ ๊ฐ์ ๊ฒ (request, response ๋ฅผ ๋ด์์)
fetch ์์ get ์์ฒญ์ ์๋ตํด์ ํ ์ ์๋ค.
๊ทผ๋ฐ ๋๋จธ์ง๋ post ๋ ์ด๋ฐ ์์ด๋ค์ ์จ์ค์ผ ํ๋ค๋ค? ์ด๊ฑด ๋ชจ์ง๋ผ ์ฌ์ดํธ fetch ์์ ์ฐพ์๋ณผ ์ ์์๋ค.